/**
 * Représente un contact.
 * @author Marie-Hélène Goddet, Damien Finck, Cédric Schaller
 * 
 */
package fastwriting;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Vector;

public class Contact {
	private int id;
	private String nom;
	private String prenom;
	private String tel;
	private String mail;
	
	public Contact() {
		this(0,"Empty",null,null,null);
	}
	
	/**
	 * Constructeur
	 * @param id L'identifiant du contact
	 * @param nom Nom du contact
	 * @param prenom Prénom du contact
	 * @param tel Numéro de téléphone du contact
	 * @param mail Adresse mail du contact
	 */
	public Contact(int id,String nom,String prenom,String tel,String mail) {
		this.setId(id);
		this.setNom(nom);
		this.setPrenom(prenom);
		this.setTel(tel);
		this.setMail(mail);
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getId() {
		return id;
	}
	public void setNom(String nom) {
		this.nom = nom;
	}
	public String getNom() {
		return nom;
	}
	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}
	public String getPrenom() {
		return prenom;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getTel() {
		return tel;
	}
	public void setMail(String mail) {
		this.mail = mail;
	}
	public String getMail() {
		return mail;
	}
	
	/**
	 * Lis les contacts dans le fichier
	 * @return la liste de contacts
	 */
	public static Vector<Contact> lireContact() {
		Vector<Contact> res = new Vector<Contact>();
		File f = new File("data/contacts.csv");
		Scanner sc;
		try {
			sc = new Scanner(f);
			String l=sc.nextLine();//Pour passer la première ligne
			while(sc.hasNextLine()) {
				l=sc.nextLine();
				res.add(toContact(l));
			}
			sc.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		return res;
	}
	
	/**
	 * Traduit le contact tel qu'inscrit dans le fichier en objet Contact
	 * @param p la ligne du fichier
	 * @return le contact rempli
	 */
	public static Contact toContact(String p) {
		String[] tmp = p.split(";");//Le séparateur en *.csv
		int id = Integer.parseInt(tmp[0]);
		String nom = tmp[1];
		String prenom = tmp[2];
		String tel = tmp[3];
		String mail = tmp[4];
		Contact c = new Contact(id,nom,prenom,tel,mail);
		return c;
	}
	
	/**
	 * Renvoie une chaine contenant le nom et le prénom du contact
	 */
	public String toString() {
		return (this.getNom()+" "+this.getPrenom());
	}
	
	/**
	 * Renvoie une chaine contenant nom, prénom et mail du contact
	 * @return la chaîne de caractère
	 */
	public String toStringWithMail() {
		return (this.getNom()+" "+this.getPrenom()+" <"+this.getMail()+">");
	}
}